The old implementation of alloc_idle_vcpu() is unnecessary since
arch-specific code ensures that a single idle domain supports NR_CPUS
vcpus, despite the usual limit of MAX_VIRT_CPUS for ordinary domains.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
struct vcpu *alloc_idle_vcpu(unsigned int cpu_id)
{
- struct domain *d;
- struct vcpu *v;
- unsigned int vcpu_id = cpu_id % MAX_VIRT_CPUS;
-
- if ( (v = idle_vcpu[cpu_id]) != NULL )
- return v;
-
- d = (vcpu_id == 0) ?
- domain_create(IDLE_DOMAIN_ID, 0, 0) :
- idle_vcpu[cpu_id - vcpu_id]->domain;
- BUG_ON(d == NULL);
-
- return alloc_vcpu(d, vcpu_id, cpu_id);
+ return idle_vcpu[cpu_id] ?: alloc_vcpu(idle_vcpu[0]->domain,
+ cpu_id, cpu_id);
}
static unsigned int __read_mostly extra_dom0_irqs = 256;